package com.wrox;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMessage;

import com.wrox.locator.DataSourceLocator;
import com.wrox.locator.ServiceConstant;


public class DeleteEmployeeAction extends Action {

  public ActionForward execute(ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws IOException, ServletException {

    // Default target to success
    String target = new String("success");

    try {

      EmployeeData.removeEmployee(request.getParameter("username"),DataSourceLocator.getInstance().getDataSources(ServiceConstant.SERVICE_CONSTANT));
    }
    catch ( Exception e ) {

      System.err.println("Setting target to error");
      target = new String("error");
      ActionErrors errors = new ActionErrors();

      errors.add(ActionErrors.GLOBAL_MESSAGE,
        new ActionMessage("errors.database.error",
          e.getMessage()));

      // Report any errors
      if ( !errors.isEmpty() ) {

        saveErrors(request, errors);
      }
    }
    // Forward to the appropriate View
    return (mapping.findForward(target));
  }
}